package cool.doudou.doudada.iot.codec.core.adapter;

import com.alibaba.fastjson2.JSONObject;

/**
 * 编解码适配器
 *
 * @author jiangcs
 * @since 2022/09/30
 */
public interface ICodecAdapter {
    /**
     * @return 厂商ID
     */
    String getManufactureId();

    /**
     * @return 产品ID
     */
    String productId();

    /**
     * 解码
     *
     * @param bytes 字节数组
     * @return 结果对象，JSON格式
     * @throws Exception 异常
     */
    JSONObject decode(byte[] bytes) throws Exception;

    /**
     * 编码
     *
     * @param paramObj 参数对象，JSON格式
     * @return 字节数组
     * @throws Exception 异常
     */
    byte[] encode(JSONObject paramObj) throws Exception;
}
